There are many applications for populations of nucleic acid molecules (referred to in the art as nucleic acid libraries) wherein the sequence of each nucleic acid molecule within the library is predetermined and known. Such libraries are useful, for example, in any situation in which it is desired to mix numerous sequences that differ from one another at one or more defined regions. For example, an expression library can be made in which each nucleic acid encodes a different amino acid chain variant corresponding to a specific peptide. The library of expressed protein fragments can then be screened by a variety of techniques, (e.g., antibody recognition, small molecule binding, nucleic acid binding, and protein-protein interaction) to identify peptide variants of interest.
Typically, such populations of mixed nucleic acids are constructed through the pooling of nucleic acid molecules that are synthesized individually. Such individual synthesis of nucleic acid molecules, however, is costly, inefficient, and labor intensive. Therefore, there is a need for improved methods for synthesizing populations of nucleic acid molecules wherein each nucleic acid molecule has a known, predetermined, sequence.